package leetcode.hot100;

import leetcode.common.TreeNode;

@SuppressWarnings("all")
public class _104_二叉树的最大深度 {

    // 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数
    public int maxDepth(TreeNode root) {
        // 特殊：结点都没有那高度自然是0
        if (root == null) return 0;
        // 从上到下一直递归压栈，一直执行到叶子结点就触发特殊条件，返回0
        // 准确来说是由叶子结点的null结点触发的条件，maxDepth(叶子) = 返回Math.max(0,0) + 1
        return Math.max(maxDepth(root.left), maxDepth(root.right)) + 1;
    }
}
